package com.dunke.service;

import com.dunke.core.common.Result;
import com.dunke.core.data.GetData;
import com.dunke.core.data.IpAddrData;
import com.dunke.core.data.PageData;
import com.dunke.core.data.admin.AdminInfo;
import com.dunke.core.data.admin.AdminPassword;
import com.dunke.core.data.admin.AdminLogin;
import com.dunke.core.data.admin.AdminRegister;

/**
 * (DbAdmin)表服务接口
 *
 * @author makejava
 * @since 2021-06-23 18:22:53
 */
public interface AdminService {

    /**
     * 用户登录
     * @param adminLogin 登录信息
     * @return
     */
    Result login(AdminLogin adminLogin);

    /**
     * 用户注册
     * @param register 实例对象
     * @return 是否成功
     */
    Result insert(AdminRegister register);

    /**
     * 修改密码（忘记密码）
     * @param password
     * @return
     */
    Result updatePwd(AdminPassword password);

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    Result queryById(Integer id);

    /**
     * 修改数据
     * @param info 实例对象
     * @return 是否成功
     */
    Result update(AdminInfo info);

    /**
     * 查询多条数据
     * @param paged 查询页数、每页条数
     * @return 对象列表
     */
    Result queryAllByLimit(PageData paged);


    /**
     * 通过主键删除数据
     * @param data 主键
     * @return 是否成功
     */
    Result deleteById(GetData data);

    /**
     * 退出登录
     * @param token
     * @return
     */
    Result loginOut(String token);

    /**
     * 写入登录log
     * @param data 登录信息
     * @return
     */
    Result insertLog(IpAddrData data);

    /**
     * 通过ID查询登录日志
     * @param paged 查询页数、每页条数
     * @param aid 管理员Id
     * @return 实例对象
     */
    Result queryLogById(PageData paged, Integer aid);

    /**
     * 删除指定日志
     * @param data
     * @param aid
     * @return
     */
    Result delLog(GetData data, Integer aid);
}
